<template>
  <div>
    <!-- 面包屑导航 -->
    <el-breadcrumb separator-class="el-icon-arrow-right">
      <el-breadcrumb-item :to="{ path: '/home' }">首页</el-breadcrumb-item>
      <el-breadcrumb-item>数据统计</el-breadcrumb-item>
      <el-breadcrumb-item>数据报表</el-breadcrumb-item>
    </el-breadcrumb>
    <!-- <h3>这是Reports子组件</h3> -->
    <!-- 卡片视图 -->
    <el-card>
      <!-- 2.为echarts准备一个设定宽、高的DOM -->
      <div ref="echartsRef" style="width:100%;height:400px;"></div>
    </el-card>
  </div>
</template>
<script>
// 1.导入安装的echarts
import echarts from 'echarts';
// 2.深拷贝用到的包 lodash
import _ from 'lodash';
export default {
  data() {
    return {
      options: {
        title: {
          text: '用户来源'
        },
        tooltip: {
          trigger: 'axis',
          axisPointer: {
            type: 'cross',
            label: {
              backgroundColor: '#E9EEF3'
            }
          }
        },
        grid: {
          left: '3%',
          right: '4%',
          bottom: '3%',
          containLabel: true
        },
        xAxis: [
          {
            boundaryGap: false
          }
        ],
        yAxis: [
          {
            type: 'value'
          }
        ]
      }
    };
  },
  // created() {
  //   this.createECharts();
  // },
  // 初始化图表，要基于初始化好的DOM,在mounted阶段DOM模板已经编译完成，并挂载到页面上了
  mounted() {
    this.createECharts();
  },
  methods: {
    async createECharts() {
      // 3.基于准备好的dom，初始化echarts实例
      const myChart = echarts.init(this.$refs.echartsRef);
      const { data: res } = await this.$http.get('reports/type/1');
      console.log(res);
      if (res.meta.status !== 200) {
        return this.$message.error('获取折线图数据失败');
      }
      // console.log(res.data);
      // var option = res.data;
      /* option响应的请求数据不完整，没有实现鼠标的跟随效果 */
      /* _.merge(obj,来源对象) _.merge(object, [sources])
      递归合并来源对象的自身和继承的可枚举属性到目标对象。 跳过来源对象解析为 undefined 的属性。 数组和普通对象会递归合并，
      其他对象和值会被直接分配。 来源对象从左到右分配，后续的来源对象属性会覆盖之前分配的属性
      */
      const result = _.merge(res.data, this.options);
      console.log(result);

      // 4.指定图表的配置项和数据
      // var option = {
      //   title: {
      //     text: 'ECharts 入门示例'
      //   },
      //   tooltip: {},
      //   legend: {
      //     data: ['销量']
      //   },
      //   xAxis: {
      //     data: ['衬衫', '羊毛衫', '雪纺衫', '裤子', '高跟鞋', '袜子']
      //   },
      //   yAxis: {},
      //   series: [
      //     {
      //       name: '销量',
      //       type: 'bar',
      //       data: [5, 20, 36, 10, 10, 20]
      //     }
      //   ]
      // };

      // 5.使用刚指定的配置项和数据显示图表
      // myChart.setOption(option);
      myChart.setOption(result);
    }
  }
};
</script>
<style lang="less" scoped></style>
